#ifndef GENERATER_H
#define GENERATER_H
#include <stdio.h>
#include <igraph.h>
#include "processor.h"

typedef struct NodeAttr {
    gchar * host;
    gchar * name;
    gchar * type;
}NodeAttr;

typedef struct EdgeAttr {
    gchar * type;
}EdgeAttr;


typedef struct Generater {
    long int nodes;
    GArray *edges;
    GArray *node_attr;
    GArray *edge_attr;
    GHashTable *node_ptr2no; // node pointer -> node no
    gboolean is_first_edge;
} Generater;


Generater *generater_create ();

int default_gen (void *opaque, ProvNode *from, ProvNode *to,  gchar *edge_type);


int generater_reset (Generater *gen);

int generater_draw (Generater *gen, FILE *out);


#endif